// 函数声明
function fun1(a: string, b: number, ...rest: number[]): string {
    return a + b
}
// 实参和形参个数类型必须相同,以上函数定义可以有任意个参数,但至少两个参数
fun1('jack', 18)

// ?: 可选参数,可选参数和默认参数都要写在最后面
function fun2(a: number, b?: number): string {
    return 'fun2'
}
fun2(18)
// 函数表达式
// 接收函数的变量也应该有类型
const fun3: (a: number, b: number) => string = function (a: number, b: number): string {
    return "fun3"
}